// 引入fs模块
const fs = require('fs')

// fs.stat 检测文件还是目录
// fs.stat('./file', (err, stats) => {
//   if(err) return console.log(err)
//   console.log(stats)
//   console.log(`文件：${stats.isFile()}`)
//   console.log(`目录：${stats.isDirectory()}`)
// })

// fs.mkdir 创建目录
// fs.mkdir('logs', (err) => {
//   if(err) return console.log(err)
//   console.log('创建目录成功')
// })

// fs.writeFile 创建写入文件
// fs.writeFile('./logs/hello.js', 'hello writeFile \n hello nodejs', (err) => {
//   if(err) return console.log(err)
//   console.log('文件写入成功')
// })

// fs.appendFile 追加文件
// fs.appendFile('./logs/hello.js', 'append some new', (err) => {
//   if(err) return console.log(err)
//   console.log('文件写入成功')
// })

// fs.readFile 读取文件
// fs.readFile('./logs/hello.js', 'utf-8', (err, data) => {
//   if(err) return console.log(err)
//   console.log(data)
// })

// fs.readdir 读取目录
// fs.readdir('./logs', (err, files) => {
//   if(err) return console.log(err)
//   console.log(files)
// })

// fs.rename 重命名
// fs.rename('./logs/hello.js', './logs/demo.js', (err) => {
//   if(err) return console.log(err)
//   console.log('重命名成功')
// })

// fs.rmdir 删除目录(目录要为空)
// fs.rmdir('./test', (err) => {
//   if(err) return console.log(err)
//   console.log('删除目录成功')
// })

// fs.unlink 删除文件
// let file = 'test.js'
// fs.unlink(`./file/${file}`, (err) => {
//   if(err) return console.log(err)
//   console.log(`成功删除：${file}`)
// })

// fs.createReadStream 创建读取流
// const fileReadStream = fs.createReadStream('./data/input.txt')
// let count = 0
// let str = ''
// fileReadStream.on('data', (chunk) => {
//   str += chunk
//   count++
// })
// fileReadStream.on('end', () => {
//   console.log(str)
//   console.log(`读取文件完成，读取了： ${count} 次`)
// })
// fileReadStream.on('error', (error) => {
//   console.log(error)
// })

// fs.createWriteStream 写入文件流
// let data
// let str = '我是output,我要写入到output.txt中 \n'
// for(let i = 0; i < 500; i++) {
//   data += str
// }
// const writeStream = fs.createWriteStream('./data/output.txt')
// writeStream.write(data,'utf-8')
// writeStream.end()
// writeStream.on('finish', () => {
//   console.log('文件流写入完成')
// })
// writeStream.on('error', (err) => {
//   console.log(err.stack)
// })
// console.log('文件流写入完毕')

// 管道流
const readStream = fs.createReadStream('./data/input.txt')
const writeStream = fs.createWriteStream('./data/output02.txt')
readStream.pipe(writeStream)
console.log('管道流执行完毕')